﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Text;

namespace Workflows.Components.TextMining.Collapse
{
    /// <summary>
    /// 
    /// </summary>
    public interface IAttributeComparer
    {
        /// <summary>
        /// specify either use code snippet or class
        /// </summary>
        AttributeComparerType ComparerType{ get; }
        SqlDbType FieldDbType{ get; set;}
        //string FieldName { get; set; }
        //double MismatchPenalty { get; set; }
        //bool SaveDistributionStatsToMemory { get; set; }
        

        
        /// <summary>
        /// 
        /// </summary>
        /// <param name="value1"></param>
        /// <param name="value2"></param>
        /// <param name="penalty"></param>
        /// <param name="unevenDistTableName"></param>
        /// <returns></returns>
        double Compare(object value1, object value2, double penalty, SqlConnection conn, string unevenDistTableName);
        
        /// <summary>
        /// 
        /// </summary>
        /// <param name="values"></param>
        /// <param name="unevenDistTableName"></param>
        /// <returns></returns>
        object Merge(List<object> values, SqlConnection conn, string unevenDistTableName);
    }
}
